切割程式
在一個程式中,可能會有很多的類別,為了整理程式,可將每一個類別單獨存放在一個原始檔中,把檔名取為「類別名稱.java」,並把全部類別及主程式放在同一個目錄中。
放在同目錄的不同原始檔
如圖所示,將主程式及Shape、Circle、Cylinder、Rectangle類別分開存放,這樣程式就不會過於攏長,因為類別名稱跟檔案名稱相同,所以看起來一目了然,管理起來更加方便。
撰寫好的類別也可以給其他人使用,但對方的程式中不能有同名的類別,遇到這種情況,要一一修改名稱不僅浪費時間,也可能在修改時造成錯誤。
所以Java提供套件(Packages),可將類別包裝起來,需在程式最開頭使用Package敘述,指名套件名稱,與同名類別區隔開來,才不會造成混淆。
剛剛用來存放主程式及Shape、Circle、Cylinder、Rectangle類別的套件。
使用套件中的類別
要使用其他套件中的類別,需要使用完整名稱(Fully Qualified Name),以「套件名稱.類別名稱」表示。
package Another;
public class Circle extends Shape{
protected double r;
protected final double PI=3.14;
public Circle(double x,double y,double r){
super(x,y);
this.r=r;
}
public String toString(){
return super.toString()+", 半徑:"+r;
}
public double area(){
return (r*r*PI);
}
}
package com.mycompany.testseven;
public class testSeven {
public static void main(String[] args) {
Another.Shape s=new Another.Shape(1,2);
Another.Rectangle re= new Another.Rectangle(3,4,7,9);
Another.Circle ci=new Another.Circle(3,4,10);
Another.Cylinder cr=new Another.Cylinder(3,4,10,3);
System.out.println("Rectangle"+re.toString());
System.out.println("長方形面積:"+re.area());
System.out.println("Circle"+ci.toString());
System.out.println("圓形面積:"+ci.area());
System.out.println("Cylinder"+cr.toString());
System.out.println("圓柱體面積:"+cr.area());
}
}
使用import敘述
在編寫或閱讀程式時,使用其他套件的類別時,都要使用完整名稱識別類別或介面較不方便,因此,可以使用import敘述,指定套件類別名稱匯入程式中,這樣就不需要一直使用完整名稱表示。
匯入套件中單一的類別名稱
一個一個匯入
package com.mycompany.testseven;
import Another.Shape;
import Another.Rectangle;
import Another.Cylinder;
import Another.Circle;
public class testSeven {
public static void main(String[] args) {
Shape s=new Shape(1,2);
Rectangle re= new Rectangle(3,4,7,9);
Circle ci=new Circle(3,4,10);
Cylinder cr=new Cylinder(3,4,10,3);
System.out.println("Rectangle"+re.toString());
System.out.println("長方形面積:"+re.area());
System.out.println("Circle"+ci.toString());
System.out.println("圓形面積:"+ci.area());
System.out.println("Cylinder"+cr.toString());
System.out.println("圓柱體面積:"+cr.area());
}
}
匯入套件中所有的類別名稱
package com.mycompany.testseven;
import Another.*;
public class testSeven {
public static void main(String[] args) {
Shape s=new Shape(1,2);
Rectangle re= new Rectangle(3,4,7,9);
Circle ci=new Circle(3,4,10);
Cylinder cr=new Cylinder(3,4,10,3);
System.out.println("Rectangle"+re.toString());
System.out.println("長方形面積:"+re.area());
System.out.println("Circle"+ci.toString());
System.out.println("圓形面積:"+ci.area());
System.out.println("Cylinder"+cr.toString());
System.out.println("圓柱體面積:"+cr.area());
}
}
參考資料:
最新java程式語言第六版